﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Practices.Prism.PubSubEvents;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.Unity;
using 示例.Common;
using 示例.Events;
using 示例.Models;
using 示例.接口;

namespace 示例.Services
{
    public class 系统配置服务1 :启动基类, I系统配置服务
    {
        public 系统配置服务1(IUnityContainer 人事部cs, IEventAggregator 新闻部cs, IRegionManager 行政部cs)
            : base(人事部cs, 新闻部cs, 行政部cs)
        {
        }
        public override  void 启动()
        {

            新闻部.GetEvent<保存配置Event>().Subscribe((x)=>写入(), true);
            读取(true);
        }

        public 系统配置 读取(bool 读取初始值)
        {
            if (!读取初始值)
            {
                if (系统配置1 != null)
                {
                    return 系统配置1;
                }
            }
            var r = 配置文件.读出<系统配置>(小冰.配置文件路径);
            系统配置1 = r.Item1 ? r.Item2 : new 系统配置();
            return 系统配置1;
        }

        public bool 写入()
        {
            var 保存结果 = 配置文件.写入(小冰.系统配置1, 小冰.配置文件路径);
            return 保存结果;
        }

        public 系统配置 系统配置1 { get; set; }

       
    }
}
